package com.gitee.dupe.dict.service;


import com.gitee.dolt.boot.service.SuperService;
import com.gitee.dupe.dict.entity.Parameter;

/**
 * <p>
 * 业务接口
 * 参数配置
 * </p>
 *
 * @author LYH
 */
public interface IParameterService extends SuperService<Parameter> {

    /**
     * 获取参数对象
     *
     * @param key
     * @return
     */
    Parameter getByKey(String key);

    /**
     * 根据参数键查询参数值
     *
     * @param key    参数键
     * @param defVal 默认值
     * @return 参数值
     */
    String getValue(String key, String defVal);

    /**
     * 根据参数键查询参数值
     *
     * @param key 参数键
     * @return 参数值
     */
    String getValue(String key);


    /**
     * 获取，或不存在则创建key
     *
     * @param key
     * @return
     */
    String getValueOrCreate(String key);

    /**
     * 获取，或不存在则创建key
     *
     * @param key
     * @param initValue 初始值
     * @return
     */
    String getValueOrCreate(String key, String initValue);

    /**
     * 获取，或不存在则创建key
     *
     * @param key
     * @param initValue 初始值
     * @param cache     是否缓存
     * @return
     */
    String getValueOrCreate(String key, String initValue, boolean cache);

    /**
     * 设置值
     *
     * @param key
     * @param value
     * @return
     */
    boolean setValue(String key, String value);
}
